package cn.xingzhe.monster.user.application.converter;

import cn.xingzhe.monster.user.application.dto.PermissionDTO;
import cn.xingzhe.monster.user.domain.model.PermissionModel;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * 权限转换器
 * 负责 PermissionModel 和 PermissionDTO 之间的转换
 *
 * @author System
 * @version 1.0.0
 * @since 2024-01-01
 */
@Mapper(componentModel = "spring")
public interface PermissionConverter {

    PermissionConverter INSTANCE = Mappers.getMapper(PermissionConverter.class);

    /**
     * 领域模型转DTO
     *
     * @param model 权限领域模型
     * @return 权限DTO
     */
    PermissionDTO toDTO(PermissionModel model);

    /**
     * DTO转领域模型
     *
     * @param dto 权限DTO
     * @return 权限领域模型
     */
    PermissionModel fromDTO(PermissionDTO dto);
}

